package com.javaee6.liimp.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class MonitorinfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public MonitorinfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andVideoidIsNull() {
            addCriterion("videoId is null");
            return (Criteria) this;
        }

        public Criteria andVideoidIsNotNull() {
            addCriterion("videoId is not null");
            return (Criteria) this;
        }

        public Criteria andVideoidEqualTo(Integer value) {
            addCriterion("videoId =", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidNotEqualTo(Integer value) {
            addCriterion("videoId <>", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidGreaterThan(Integer value) {
            addCriterion("videoId >", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidGreaterThanOrEqualTo(Integer value) {
            addCriterion("videoId >=", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidLessThan(Integer value) {
            addCriterion("videoId <", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidLessThanOrEqualTo(Integer value) {
            addCriterion("videoId <=", value, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidIn(List<Integer> values) {
            addCriterion("videoId in", values, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidNotIn(List<Integer> values) {
            addCriterion("videoId not in", values, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidBetween(Integer value1, Integer value2) {
            addCriterion("videoId between", value1, value2, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideoidNotBetween(Integer value1, Integer value2) {
            addCriterion("videoId not between", value1, value2, "videoid");
            return (Criteria) this;
        }

        public Criteria andVideocityIsNull() {
            addCriterion("videoCity is null");
            return (Criteria) this;
        }

        public Criteria andVideocityIsNotNull() {
            addCriterion("videoCity is not null");
            return (Criteria) this;
        }

        public Criteria andVideocityEqualTo(String value) {
            addCriterion("videoCity =", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityNotEqualTo(String value) {
            addCriterion("videoCity <>", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityGreaterThan(String value) {
            addCriterion("videoCity >", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityGreaterThanOrEqualTo(String value) {
            addCriterion("videoCity >=", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityLessThan(String value) {
            addCriterion("videoCity <", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityLessThanOrEqualTo(String value) {
            addCriterion("videoCity <=", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityLike(String value) {
            addCriterion("videoCity like", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityNotLike(String value) {
            addCriterion("videoCity not like", value, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityIn(List<String> values) {
            addCriterion("videoCity in", values, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityNotIn(List<String> values) {
            addCriterion("videoCity not in", values, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityBetween(String value1, String value2) {
            addCriterion("videoCity between", value1, value2, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideocityNotBetween(String value1, String value2) {
            addCriterion("videoCity not between", value1, value2, "videocity");
            return (Criteria) this;
        }

        public Criteria andVideosouceIsNull() {
            addCriterion("videoSouce is null");
            return (Criteria) this;
        }

        public Criteria andVideosouceIsNotNull() {
            addCriterion("videoSouce is not null");
            return (Criteria) this;
        }

        public Criteria andVideosouceEqualTo(String value) {
            addCriterion("videoSouce =", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceNotEqualTo(String value) {
            addCriterion("videoSouce <>", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceGreaterThan(String value) {
            addCriterion("videoSouce >", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceGreaterThanOrEqualTo(String value) {
            addCriterion("videoSouce >=", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceLessThan(String value) {
            addCriterion("videoSouce <", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceLessThanOrEqualTo(String value) {
            addCriterion("videoSouce <=", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceLike(String value) {
            addCriterion("videoSouce like", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceNotLike(String value) {
            addCriterion("videoSouce not like", value, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceIn(List<String> values) {
            addCriterion("videoSouce in", values, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceNotIn(List<String> values) {
            addCriterion("videoSouce not in", values, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceBetween(String value1, String value2) {
            addCriterion("videoSouce between", value1, value2, "videosouce");
            return (Criteria) this;
        }

        public Criteria andVideosouceNotBetween(String value1, String value2) {
            addCriterion("videoSouce not between", value1, value2, "videosouce");
            return (Criteria) this;
        }

        public Criteria andMonitordateIsNull() {
            addCriterion("monitorDate is null");
            return (Criteria) this;
        }

        public Criteria andMonitordateIsNotNull() {
            addCriterion("monitorDate is not null");
            return (Criteria) this;
        }

        public Criteria andMonitordateEqualTo(Date value) {
            addCriterionForJDBCDate("monitorDate =", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateNotEqualTo(Date value) {
            addCriterionForJDBCDate("monitorDate <>", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateGreaterThan(Date value) {
            addCriterionForJDBCDate("monitorDate >", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("monitorDate >=", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateLessThan(Date value) {
            addCriterionForJDBCDate("monitorDate <", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("monitorDate <=", value, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateIn(List<Date> values) {
            addCriterionForJDBCDate("monitorDate in", values, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateNotIn(List<Date> values) {
            addCriterionForJDBCDate("monitorDate not in", values, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("monitorDate between", value1, value2, "monitordate");
            return (Criteria) this;
        }

        public Criteria andMonitordateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("monitorDate not between", value1, value2, "monitordate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}